package com.eight.common.pojo;

import java.time.LocalDateTime;
import java.util.Date;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

/**
* 课程视频
* @TableName edu_video
*/
@Data
@ApiModel(value = "video对象",description = "课程视频")
@TableName("edu_video")
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
public class EduVideo implements Serializable {

    /**
    * 视频ID
    */
    @NotBlank(message="[视频ID]不能为空")
    @Size(max= 19,message="编码长度不能超过19")
    @ApiModelProperty("视频ID")
    @Length(max= 19,message="编码长度不能超过19")
    private String id;
    /**
    * 课程ID
    */
    @NotBlank(message="[课程ID]不能为空")
    @Size(max= 19,message="编码长度不能超过19")
    @ApiModelProperty("课程ID")
    @Length(max= 19,message="编码长度不能超过19")
    private String courseId;
    /**
    * 章节ID
    */
    @NotBlank(message="[章节ID]不能为空")
    @Size(max= 19,message="编码长度不能超过19")
    @ApiModelProperty("章节ID")
    @Length(max= 19,message="编码长度不能超过19")
    private String chapterId;
    /**
    * 节点名称
    */
    @NotBlank(message="[节点名称]不能为空")
    @Size(max= 50,message="编码长度不能超过50")
    @ApiModelProperty("节点名称")
    @Length(max= 50,message="编码长度不能超过50")
    private String title;
    /**
    * 云端视频资源
    */
    @Size(max= 100,message="编码长度不能超过100")
    @ApiModelProperty("云端视频资源")
    @Length(max= 100,message="编码长度不能超过100")
    private String videoSourceId;
    /**
    * 附属文件
    */
    @Size(max= 100,message="编码长度不能超过100")
    @ApiModelProperty("附属文件")
    @Length(max= 100,message="编码长度不能超过100")
    private String videoOriginalName;
    /**
    * 排序字段
    */
    @NotNull(message="[排序字段]不能为空")
    @ApiModelProperty("排序字段")
    private Object sort;
    /**
    * 播放次数
    */
    @NotNull(message="[播放次数]不能为空")
    @ApiModelProperty("播放次数")
    private Long playCount;
    /**
    * 是否可以试听：0收费 1免费
    */
    @NotNull(message="[是否可以试听：0收费 1免费]不能为空")
    @ApiModelProperty("是否可以试听：0收费 1免费")
    private Object isFree;
    /**
    * 视频时长（秒）
    */
    @NotNull(message="[视频时长（秒）]不能为空")
    @ApiModelProperty("视频时长（秒）")
    private Double duration;
    /**
    * 1正常,,2修改
    */
    @NotNull(message="[1正常,,2修改]不能为空")
    @ApiModelProperty("1正常,,2修改")
    private Integer status;
    /**
    * 视频源文件大小（字节）
    */
    @NotNull(message="[视频源文件大小（字节）]不能为空")
    @ApiModelProperty("视频源文件大小（字节）")
    private Long size;
    /**
    * 乐观锁
    */
    @NotNull(message="[乐观锁]不能为空")
    @ApiModelProperty("乐观锁")
    private Long version;
    /**
    * 创建时间
    */
    @NotNull(message="[创建时间]不能为空")
    @ApiModelProperty("创建时间")
    private LocalDateTime gmtCreate;
    /**
    * 更新时间
    */
    @NotNull(message="[更新时间]不能为空")
    @ApiModelProperty("更新时间")
    private LocalDateTime gmtModified;


}
